package com.irssproject.app.dao.lectorRSS.iface;

import java.util.Date;
import java.util.List;

import com.irssproject.app.bean.lectorRSS.Etiqueta;
import com.irssproject.app.bean.lectorRSS.Feed;
import com.irssproject.app.bean.lectorRSS.Item;
import com.irssproject.app.bean.lectorRSS.Lectura;
import com.irssproject.app.bean.lectorRSS.Subscripcio;
import com.irssproject.app.bean.main.Usuari;

public interface SubscripcioDAO {
	
	public List<Subscripcio> getListSubscripcions(Usuari usuari);
		
	public void insertSubscripcio(Subscripcio subscripcio);
	public void deleteSubscripcio(Long idSubscripcio);
	
	public List<Lectura> getLecturesNoLlegides(Subscripcio subscripcio);
	public List<Lectura> getTotesLectures(Subscripcio subscripcio);
	public void marcarLecturaLlegida(Lectura lectura);

	public Date getDarreraDataPublicacio(Subscripcio subscripcio);

	public Item getItemByLink(String link);
	public Lectura getLecturaById(Long idLectura);
	/* operacions segures fins aqui*/

	
	public List<Lectura> getLecturesVotades(Usuari usuari);
	public Date getDataDarrerItem(Subscripcio subscripcio);
	public List<Subscripcio> getListSubscripcionsPerEtiqueta(Usuari usuari,Etiqueta etiq);
	public Subscripcio getSubscripcioByFeedLink(Usuari usuari, String feedLink);
	public Item getItem(Item item);
	public void definirRellevanciaDeLectura(Lectura lectura);
	public Integer getNumItemsSubscripcio(Subscripcio subscripcio);
	public boolean usuariTeFeedSubscrit(Usuari usuari, Feed feed);
	public Subscripcio getSubscripcioById(Long idSubscripcio);
	public void refreshSubscripcio(Subscripcio subscripcio);
	public void insertItems(List<Item> items);
	public Long insertItem(Item item);
	
	public List<Etiqueta> getListEtiquetes(Usuari usuari);
	public boolean marcarLlegidaONoLlegida(Long idLectura);
	public boolean valorarLectura(Long idLectura);

	public List<Lectura> obtenirLecturesSubscripcio(Subscripcio subscripcio);

	public void marcarTotesLecturesLlegides(Long idSubscripcio);

	public List<Lectura> getLecturesBySubscripcioId(Long idSubscripcio);

}
